//package com.example.denglanya;
//
//import androidx.appcompat.app.AppCompatActivity;
//import androidx.core.app.ActivityCompat;
//
//import android.Manifest;
//import android.bluetooth.BluetoothAdapter;
//import android.bluetooth.BluetoothDevice;
//import android.bluetooth.BluetoothHeadset;
//import android.bluetooth.BluetoothProfile;
//import android.bluetooth.BluetoothSocket;
//import android.content.Intent;
//import android.content.pm.PackageManager;
//import android.os.AsyncTask;
//import android.os.Build;
//import android.os.Bundle;
//import android.util.Log;
//import android.widget.ListView;
//import android.widget.Toast;
//
//import java.io.IOException;
//import java.util.Iterator;
//import java.util.Set;
//import java.util.UUID;
//
//import cn.wandersnail.bluetooth.BTManager;
//import cn.wandersnail.commons.poster.ThreadMode;
//
//public class aaa extends AppCompatActivity {
//    private String blName = "JDY-31-SPP";
//    private final String TAG = "6666";
//
//    private ListView listView;
//
//    private BluetoothHeadset bluetoothHeadset;
//    private BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
//    private BluetoothDevice mBluetoothDevice;
//
//    @Override
//    protected void onCreate(Bundle savedInstanceState) {
//        //实例化并初始化
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_main);
//
//        BTManager manager = BTManager.getBuilder()
//                .setObserveAnnotationRequired(false)//不强制使用{@link Observe}注解才会收到被观察者的消息，强制使用的话，性能会好一些
//                .setMethodDefaultThreadMode(ThreadMode.MAIN)//指定回调方法和观察者方法的默认线程
//                .build();
////        manager.initialize(application);
//
//        initView();
//        if (mBluetoothAdapter == null) {
//            Toast.makeText(this, "当前设备不支持蓝牙,请更换手机，即将退出", Toast.LENGTH_SHORT).show();
//            return;
//        } else {
//            if (!mBluetoothAdapter.isEnabled()) {
//                mBluetoothAdapter.enable();
//            }
//        }
//        // Android 6.0动态请求权限
//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//            String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE
//                    , Manifest.permission.READ_EXTERNAL_STORAGE
//                    , Manifest.permission.ACCESS_COARSE_LOCATION};
//            for (String str : permissions) {
//                if (checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {
//                    requestPermissions(permissions, 111);
//                    break;
//                }
//            }
//        }
//        setPairingDevice();
//        connect(mBluetoothDevice, new ConnectBlueCallBack() {
//            @Override
//            public void onStartConnect() {
//                Log.w(TAG, "开始连接");
//            }
//
//            @Override
//            public void onConnectSuccess(BluetoothDevice device, BluetoothSocket bluetoothSocket) {
//                Log.w(TAG, "连接成功");
//            }
//
//            @Override
//            public void onConnectFail(BluetoothDevice device, String string) {
//                Log.w(TAG, "连接失败");
//            }
//        });
//
//    }
//
//    //控件初始化
//    private void initView() {
//        listView = (ListView) findViewById(R.id.lv);
//    }
//
//    /*
//     *获取已经配对的设备
//     */
//    private void setPairingDevice() {
//        Set<BluetoothDevice> devices = mBluetoothAdapter.getBondedDevices();
//        if (devices.size() > 0) { //存在已配对过的设备
//            //利用for循环读取每一个设备的信息
//            for (Iterator<BluetoothDevice> it = devices.iterator(); it.hasNext(); ) {
//                BluetoothDevice btd = it.next();
//                if ("JDY-31-SPP".equals(btd.getName().toString())) {
//                    mBluetoothDevice = btd;
//                    Log.d(TAG, mBluetoothAdapter.getAddress().toString());
//
//                }
//
//            }
//        } else {
//            Toast.makeText(this, "您当前还没匹配蓝牙，请到手机蓝牙页面连接蓝牙JDY-31-SPP,pin为0000,并重启该软件", Toast.LENGTH_LONG).show();
//        }
//    }
//
//    /**
//     * 连接线程
//     */
//    public class ConnectBlueTask extends AsyncTask<BluetoothDevice, Integer, BluetoothSocket> {
//        private String uuid = "00001101-0000-1000-8000-00805F9B34FB";
//        private BluetoothDevice bluetoothDevice;
//        private ConnectBlueCallBack callBack;
//
//        public ConnectBlueTask(ConnectBlueCallBack callBack){
//            this.callBack = callBack;
//        }
//
//        @Override
//        protected BluetoothSocket doInBackground(BluetoothDevice... bluetoothDevices) {
//            bluetoothDevice = bluetoothDevices[0];
//            BluetoothSocket socket = null;
//            try{
//                Log.d(TAG, "开始连接socket,uuid:" + uuid);
//                socket = bluetoothDevice.createRfcommSocketToServiceRecord(UUID.fromString(uuid));
//                if (socket != null && !socket.isConnected()){
//                    socket.connect();
//                }
//            }catch (IOException e){
//                Log.e(TAG,"socket连接失败");
//                try {
//                    socket.close();
//                } catch (IOException e1) {
//                    e1.printStackTrace();
//                    Log.e(TAG,"socket关闭失败");
//                }
//            }
//            return socket;
//        }
//
//        @Override
//        protected void onPreExecute() {
//            Log.d(TAG,"开始连接");
//            if (callBack != null) callBack.onStartConnect();
//        }
//
//        @Override
//        protected void onPostExecute(BluetoothSocket bluetoothSocket) {
//            if (bluetoothSocket != null && bluetoothSocket.isConnected()){
//                Log.d(TAG,"连接成功");
//                if (callBack != null) callBack.onConnectSuccess(bluetoothDevice, bluetoothSocket);
//            }else {
//                Log.d(TAG,"连接失败");
//                if (callBack != null) callBack.onConnectFail(bluetoothDevice, "连接失败");
//            }
//        }
//    }
//    /**
//     * 连接
//     */
//    public void connect(BluetoothDevice device, ConnectBlueCallBack callBack){
//        new ConnectBlueTask(callBack).execute(device);
//    }
//
//
//
//}